package com.qiyuesuo.sdk.sample;

import com.qiyuesuo.sdk.v2.bean.Contract;
import com.qiyuesuo.sdk.v2.response.DocumentAddResult;
import com.qiyuesuo.sdk.v2.response.SdkResponse;
import com.sun.xml.internal.bind.v2.runtime.reflect.opt.Const;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.*;

/**
 * @Auther: Tangzhiqiang
 * @Date: 2020/3/4 0004 19:35
 * @Description: 类描述！！！！
 */
@Component
public class Test {

    public static void main(String[] args) throws Exception {
        Test test = new Test();
        test.goDZQZ();
    }
    QiyuesuoImpl qiyuesuo = new QiyuesuoImpl();
    /**
     * 提交电子签章
     *
     * @param
     * @throws Exception
     */
    public Object goDZQZ() throws Exception {
        String errInfo = "success";
        String errMsg = "";
        Map<String, Object> map = new HashMap<String, Object>();

        String contractPeriod = "2020-07-05";// 合同期限

        // 合同基本信息
        String status = "01605001";
        String contractName = "测试合同";
        String contract_code = "0";
        String signed_id = "0";
        String signed_name = "长沙远大住宅工业集团股份有限公司";
        String supplierid = "166666L";
        String suppliername = "供应商名称";

        //判断是否已提交（草稿、退回、撤回状态才可提交）
        if (!"01605001,01605002,01605007,01605009".contains(status)) {
            errInfo = "error";
            errMsg = "提交电子签章失败：无法重复提交，请返回页面刷新合同状态";
            map.put("result", errInfo); // 返回结果
            map.put("result_info", errMsg); // 返回结果
            return false;
        }
        // 生成本地word文档
        String filaPath = "H:\\TZQ\\box 需求\\协议\\见习代理人协议(7).docx";

        //调契约锁接口创建合同（只设置接收人，即双方经办人）
        SdkResponse<Contract> responseObj = qiyuesuo.draft(contractName, signed_name);
        if (responseObj == null) {
            // 调契约锁生成合同草稿失败（调用报错）
            errInfo = "error";
            errMsg = "提交电子签章失败：初始化合同接口调用失败，请联系管理员进行处理";
        } else if (responseObj.getCode() != 0) {
            // 调契约锁生成合同草稿失败
            errInfo = "error";
            errMsg = "提交电子签章失败：初始化合同信息失败，错误代码：" + responseObj.getCode() + "；错误原因：" + responseObj.getMessage();
        } else {
            // 调契约锁接口上传合同文件
            Contract contractData = responseObj.getResult();
            Long contractId = contractData.getId();
            SdkResponse<DocumentAddResult> responseObj_dar = qiyuesuo.addbyfile(contractId, contractName, filaPath, "docx");
            if (responseObj_dar == null) {
                // 调契约锁上传合同文件失败（调用报错）
                errInfo = "error";
                errMsg = "提交电子签章失败：上传合同文件接口调用失败，请联系管理员进行处理";
            } else if (responseObj_dar.getCode() != 0) {
                // 调契约锁上传合同文件失败
                errInfo = "error";
                errMsg = "提交电子签章失败：上传合同文件失败，错误代码：" + responseObj_dar.getCode() + "；错误原因：" + responseObj_dar.getMessage();
            } else {
                // 调契约锁接口发起合同
                long documentId = responseObj_dar.getResult().getDocumentId();
                SdkResponse<Object> responseObj_sc = qiyuesuo.sendContract(contractId, documentId, signed_name, contractData);
                if (responseObj_sc == null) {
                    // 调契约锁接口发起合同失败（调用报错）
                    errInfo = "error";
                    errMsg = "提交电子签章失败：合同发起电子签章失败，请联系管理员进行处理";
                } else if (responseObj_sc.getCode() != 0) {
                    // 调契约锁接口发起合同失败
                    errInfo = "error";
                    errMsg = "提交电子签章失败：合同发起电子签章失败，错误代码：" + responseObj_sc.getCode() + "；错误原因：" + responseObj_sc.getMessage();
                } else {
                    System.out.println("}}contractId"+contractId+"}}documentId"+documentId+"}}contractPeriod"+contractPeriod);
                    // 保存契约锁合同id以及合同文件id
                }
            }
        }

        map.put("result", errInfo); // 返回结果
        map.put("result_info", errMsg); // 返回结果
        return false;
    }

}
